<?php
/**
 * @name Bootstrap
 * @desc 所有在Bootstrap类中, 以_init开头的方法, 都会被Yaf调用,
 * @see http://www.php.net/manual/en/class.yaf-bootstrap-abstract.php
 * 这些方法, 都接受一个参数:Yaf_Dispatcher $dispatcher
 * 调用的次序, 和申明的次序相同
 */
class Bootstrap extends Yaf_Bootstrap_Abstract {

	public function _initConfig(Yaf_Dispatcher $dispatcher) {
		// 关闭自动加载模板
		$dispatcher->autoRender(FALSE);
		
		// 把配置保存起来
		$config = Yaf_Application::app()->getConfig();
		Yaf_Registry::set('Config', $config);

		// 版本号设置
		if (!defined('VERSION')) {
			$version = $config->app->version;
			define('VERSION', $version);
			Yaf_Registry::set('Version', $version);
		}
		
		// 时区设置
		date_default_timezone_set($config->app->timezone);
	}
	
	public function _initPlugin(Yaf_Dispatcher $dispatcher) {
		if (Yaf_Registry::get('Config')->aop->enabled) {
			// 注册AOP插件
			$objPlugin = new Aop_Plugin;
			$dispatcher->registerPlugin($objPlugin);
		}
	}
}
